﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;

namespace ReclutamientoCosea
{
    public partial class wfReporteFinal2 : Form
    {
        private string _idCandidato = "";
        private static AppSettingsReader settings = new AppSettingsReader();

        public string IdCandidato
        {
            get { return _idCandidato; }
            set { _idCandidato = value; }
        }

        public wfReporteFinal2()
        {
            InitializeComponent();
        }

        private void wfReporteFinal2_Load(object sender, EventArgs e)
        {
            ObtieneDatos();
            //this.reportViewer1.RefreshReport();
            //string appPath = Path.GetDirectoryName(Application.ExecutablePath);
            //MessageBox.Show(appPath);
            //this.reportViewer1.RefreshReport();
        }
        private void ObtieneDatos()
        {
            bdSQLServer bd = new bdSQLServer ((string)settings.GetValue("cadenaconexion", typeof(string)));
            try
            {
                string SQL = "exec SPObtenDatosReporte '{0}'";
                bd.bdConecta();
                SQL = string.Format(SQL, _idCandidato);

                DataSet ds = bd.dataSetConsulta(SQL, "reporte");

                if (ds.Tables["reporte"].Rows.Count > 0)
                {
                    DataRow  dr = ds.Tables["reporte"].Rows[0];
                    lblNombre.Text = dr["Nombre_Completo"].ToString();
                    txtPuesto.Text = dr["Puesto"].ToString();
                    txtSituacion.Text = string.Empty;
                    txtDescripcion.Text = "Edad: " + dr["Edad"].ToString().Trim() + "\r\n"
                        + "Estado Civil:" + dr["Estado_Civil"].ToString().Trim() + "\r\n"
                        + "Escolaridad:" + dr["Escolaridad"].ToString() .Trim() + "\r\n"
                         + "Domicilio:" + dr["Domicilio"].ToString().Trim() + "\r\n";
                    txtHabilidadesDesarrollo.Text = dr["Habilidades"].ToString().Trim() + "\r\n"
                        + dr["Competencias"].ToString().Trim() + "\r\n";

                    SQL = string.Format("select puesto,actividades,logros,relacionjefe,motivosalida from ExperienciaLaboralEntreCosea where idcandidato = '{0}' order by renglon ", _idCandidato);
                    DataSet dsExp = bd.dataSetConsulta(SQL, "exp");
                    if (dsExp.Tables["exp"].Rows.Count > 0)
                    {
                        string strContenido = "";
                        foreach (DataRow  dr2 in dsExp.Tables["exp"].Rows)
                        {
                            strContenido += "Puesto: " + dr2["puesto"].ToString().Trim() + ", "
                                + "Actividades: " + dr2["actividades"].ToString().Trim() + ", "
                                + "Logros: " + dr2["logros"].ToString().Trim() + ", "
                                + "Relacion con el jefe: " + dr2["relacionjefe"].ToString().Trim() + ", "
                                + "Motivo Salida: " + dr2["motivosalida"].ToString().Trim() + "\r\n";
                        }
                        txtManejoImplementacion.Text = strContenido;
                    }

                    
                }
                    txtOperatividad1.Text = string.Empty;
                    txtOperatividad2.Text = string.Empty;
                    txtOperatividad3.Text = string.Empty;
                    txtOperatividad4.Text = string.Empty;
                    txtOperatividad5.Text = string.Empty;
                    txtEquipo.Text = "0.0";
                    txtOrganizacion.Text = "0.0";
                    txtExperiencia.Text = "0.0";
                    txtLiderazgo.Text = "0.0";
                
            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }

        }

        private void btnHacer_Click(object sender, EventArgs e)
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));            
            try
            {

                string SQL = "insert into ReporteFinal values ('{0}','{1}',GETDATE(),'{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}',{12},{13},{14},'{15}','{16}','{17}',{18})";
                string strFinal = "";
                bd.bdConecta();
                string guid = System.Guid.NewGuid().ToString();


                strFinal = string.Format(SQL, guid, _idCandidato, lblNombre.Text, txtSituacion.Text, txtDescripcion.Text,
                    txtHabilidadesDesarrollo.Text, txtManejoImplementacion.Text, txtOperatividad1.Text, txtOperatividad2.Text,
                    txtOperatividad3.Text, txtOperatividad4.Text, txtOperatividad5.Text, txtEquipo.Text, 
                    txtExperiencia.Text, txtLiderazgo.Text,"","",txtPuesto.Text,txtOrganizacion.Text);


                //int d = bd.bdEjecuta("Delete from ReporteFinal");

                int r = bd.bdEjecuta(strFinal);
                string strSQL = "select * from ReporteFinal where idReportefinal = '{0}'";
                strSQL = string.Format(strSQL, guid);
                DataSet ds1 = bd.dataSetConsulta(strSQL, "r");
                //string appPath = Path.GetDirectoryName(Application.ExecutablePath);
                string appPath = "c:\\tmpReportes";
                string archivo = System.IO.Path.Combine(appPath, "tmpDatos.xml");                
                ds1.WriteXml(archivo);
                tabControl1.TabPages[1].Focus();                                                
                MessageBox.Show("Reporte generado, da click en Ver Reporte", "Sistema Reclutamiento", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //crystalReportViewer1.ReportSource = ds1;                

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }
        }
    }
}
